home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
The Arsenal Files 8
/
The Arsenal Files Collection #8 (Arsenal Computer) (1996).ISO
/
pcboard
/
dp-nws13.zip
/
NEWS.PPE
(
.txt
)
< prev
Wrap
PCBoard Programming Language Executable
|
1996-11-14
|
8KB
|
487 lines
;------------------------------------------------------------------------------
; .ss.
; `²²'
; .,sS$Ss,,s$ .,sS$$$Ss. .,sS$Ss,,s$ .ss. .sSs.
; .d$$²^°²$$$$'.d$P²°^^²$P'.d$$²^°²$$$$'.$$$' .$$$²Sb,.
; $$$' .$$$' $$$²Sçsµ²' .$$$' .$$$'.$$$' .$$$' `$$b.
; $$$b,,d$$$' ,$$$b,....,s$$$$b,,d$$$'.$$$;.,$$$' ;$$$
; `²S$$S²²S$$S²°²S$$$$S²°°²S$$$$$$',$$S²°²S$S'.sS$$$P²'
; .sS²°$$$²²°"' d²°'
; .$$² .$$'
; $$$.,d$$'
; `²S$$S²'
;------------------------------------------------------------------------------
; P.P.L.X. 2.OO (C)1996 - Lone Runner / AEGiS CoRP'96
;------------------------------------------------------------------------------
; PPE 3.O1 (Encryption type I) - Analysis ON - Postprocessing ON
;------------------------------------------------------------------------------
Boolean BOOLEAN001
Integer INTEGER001
Integer INTEGER002
Integer INTEGER003
Integer INTEGER004
Integer INTEGER005
Integer INTEGER006
Integer INTEGER007
Integer INTEGER008
Integer INTEGER009
Integer INTEGER010
Integer INTEGER011
Integer INTEGER012
Integer INTEGER013
Integer INTEGER014
Integer INTEGER015
Integer INTEGER016
Integer INTEGER017
Integer INTEGER018
Integer INTEGER019
String TSTRING001(999)
String TSTRING002(999)
String TSTRING003(999)
String STRING004
String STRING005
String STRING006
String STRING007
String STRING008
String STRING009
String STRING010
String STRING011
String STRING012
String TSTRING013(999)
String TSTRING014(999)
String TSTRING015(999)
String TSTRING016(999)
String TSTRING017(999)
String STRING018
String STRING019
String STRING020
;------------------------------------------------------------------------------
INTEGER005 = 0
INTEGER004 = 1
INTEGER006 = 0
INTEGER008 = 0
INTEGER007 = 0
INTEGER009 = 0
INTEGER010 = 0
INTEGER001 = 0
INTEGER002 = 0
INTEGER011 = 0
INTEGER012 = 0
Goto LABEL001
SPrintLn "Joo kyllä sä tuneri osaat itekin PPEitä koodata... Sitäpaitsi"
SPrintLn "on harvinaisen törkeää purkaa toisten PPEitä................."
SPrintLn ".....ja poistaa niistä toisten (c)opyright -merkinnät........"
:LABEL001
STRING009 = Date()
INTEGER005 = 2
INTEGER004 = 1
BOOLEAN001 = 0
INTEGER001 = 0
Cls
FOpen 1, PPEPath() + "news.cfg", 0, 0
FGet 1, STRING010
FGet 1, STRING019
FGet 1, STRING020
FClose 1
If (Exist(PPEPath() + "news.idx")) Then
Goto LABEL002
Else
PrintLn "@X0C■ No index file, creating a new one@X07"
FCreate 1, PPEPath() + "news.idx", 1, 0
FOpen 1, PPEPath() + "news.idx", 0, 0
FPutLn 1, "DELTAPRODUCTIONS NEWS - v 1.0"
Endif
:LABEL002
STRING006 = U_LDate()
INTEGER013 = Day(STRING006)
INTEGER014 = Month(STRING006)
INTEGER015 = Year(STRING006)
FOpen 1, PPEPath() + "news.idx", 0, 0
FGet 1, STRING004
Newline
If (STRING004 <> "DELTAPRODUCTIONS NEWS - v 1.0") Then
PrintLn "@X0C■ NEWS.IDX might be corrupted!@X07"
Goto LABEL003
Endif
:LABEL003
If (Ferr(1)) Goto LABEL004
INTEGER001 = INTEGER001 + 1
FGet 1, TSTRING001(INTEGER001)
FGet 1, TSTRING002(INTEGER001)
FGet 1, TSTRING003(INTEGER001)
Goto LABEL003
:LABEL004
STRING008 = INTEGER001
FClose 1
For INTEGER002 = 1 To INTEGER001 - 1
INTEGER016 = Day(TSTRING003(INTEGER002))
INTEGER017 = Month(TSTRING003(INTEGER002))
INTEGER018 = Year(TSTRING003(INTEGER002))
BOOLEAN001 = 0
If (INTEGER015 < INTEGER018) Then
BOOLEAN001 = 1
Endif
If ((INTEGER014 < INTEGER017) && (INTEGER015 == INTEGER018)) Then
BOOLEAN001 = 1
Endif
If (((INTEGER015 == INTEGER018) && (INTEGER014 == INTEGER017)) && (INTEGER013 <= INTEGER016)) Then
BOOLEAN001 = 1
Endif
If (BOOLEAN001 == 1) Then
TSTRING017(INTEGER002) = "*"
Continue
Endif
TSTRING017(INTEGER002) = " "
Next
STRING005 = String(0)
If (Len(STRING005) == 1) STRING005 = "00" + STRING005
If (Len(STRING005) == 2) STRING005 = "0" + STRING005
INTEGER008 = INTEGER001 - 1
:LABEL005
Cls
PrintLn "@X1F@POFF@DeltaProductions NEWS v1.3A (c) Creep&Delta/DP@X07"
DispFile PPEPath() + "news", 0
:LABEL006
If (INTEGER005 == INTEGER004) INTEGER005 = INTEGER004 + 1
Print "@X03"
For INTEGER009 = 1 To 19
AnsiPos 2, INTEGER009 + 2
Print " " + Left(TSTRING001(STRING008 - INTEGER009 + INTEGER003), 54) + " "
AnsiPos 59, INTEGER009 + 2
Print " " + Left(TSTRING003(STRING008 - INTEGER009 + INTEGER003), 8) + " "
AnsiPos 70, INTEGER009 + 2
Print " " + Left(TSTRING002(STRING008 - INTEGER009 + INTEGER003), 3) + " "
AnsiPos 76, INTEGER009 + 2
Print " " + Left(TSTRING017(STRING008 - INTEGER009 + INTEGER003), 1) + " "
Next
:LABEL007
If (INTEGER005 == INTEGER004) Goto LABEL008
AnsiPos 2, INTEGER005 + 2
Print " " + Left(TSTRING001(STRING008 - INTEGER003 + INTEGER005), 54) + " "
AnsiPos 2, INTEGER004 + 2
Print "@X1F " + Left(TSTRING001(STRING008 - INTEGER003 + INTEGER004), 54) + " @X03"
AnsiPos 70, INTEGER005 + 2
Print " " + Left(TSTRING002(STRING008 - INTEGER003 + INTEGER005), 3) + " "
AnsiPos 70, INTEGER004 + 2
Print "@X1F " + Left(TSTRING002(STRING008 - INTEGER003 + INTEGER004), 3) + " @X03"
AnsiPos 59, INTEGER005 + 2
Print " " + Left(TSTRING003(STRING008 - INTEGER003 + INTEGER005), 8) + " "
AnsiPos 59, INTEGER004 + 2
Print "@X1F " + Left(TSTRING003(STRING008 - INTEGER003 + INTEGER004), 8) + " @X03"
AnsiPos 76, INTEGER005 + 2
Print " " + Left(TSTRING017(STRING008 - INTEGER003 + INTEGER005), 1) + " "
AnsiPos 76, INTEGER004 + 2
Print "@X1F " + Left(TSTRING017(STRING008 - INTEGER004 + INTEGER003), 1) + " @X03"
:LABEL008
STRING011 = Inkey()
INTEGER007 = 0
If (STRING011 == "") Goto LABEL008
If (STRING011 == "UP") Then
If ((INTEGER004 == 1) && (INTEGER003 == 0)) Goto LABEL009
INTEGER005 = INTEGER004
INTEGER004 = INTEGER004 - 1
Endif
:LABEL009
If (STRING011 == Chr(13)) Goto LABEL012
If (Upper(STRING011) == "A") Goto LABEL014
If (Upper(STRING011) == "D") Goto LABEL015
If (STRING011 == "DOWN") Then
If ((INTEGER004 >= 19) && (INTEGER003 >= INTEGER008 - 19)) Goto LABEL010
INTEGER005 = INTEGER004
INTEGER004 = INTEGER004 + 1
Endif
:LABEL010
If ((Upper(STRING011) == "N") && (INTEGER003 < INTEGER008 - 19)) Then
INTEGER003 = INTEGER003 + 19
INTEGER004 = 1
INTEGER005 = 2
INTEGER007 = 1
Endif
If ((Upper(STRING011) == "P") && (INTEGER003 > 0)) Then
INTEGER003 = INTEGER003 - 19
INTEGER004 = 19
INTEGER007 = 1
Endif
If (STRING011 == "X") Goto LABEL030
If (STRING011 == Chr(27)) Goto LABEL030
If (INTEGER004 < 1) Then
INTEGER003 = INTEGER003 - 1
INTEGER004 = 1
INTEGER005 = 2
INTEGER007 = 1
Endif
If (INTEGER004 > 19) Then
INTEGER003 = INTEGER003 + 1
INTEGER005 = 18
INTEGER004 = 19
INTEGER007 = 1
Endif
If (INTEGER003 > INTEGER008 - 19) Then
If (INTEGER008 < 19) Then
INTEGER003 = 0
Goto LABEL011
Endif
INTEGER003 = INTEGER008 - 19
INTEGER004 = 19
Endif
:LABEL011
If (INTEGER004 + INTEGER003 > INTEGER008) Then
INTEGER004 = INTEGER008 - INTEGER003
INTEGER005 = 1
Endif
If (INTEGER003 < 0) Then
INTEGER003 = 0
INTEGER004 = 1
INTEGER005 = 2
Endif
If (INTEGER007 == 1) Goto LABEL006
Goto LABEL007
Return
:LABEL012
If (Exist(PPEPath() + "news." + TSTRING002(STRING008 - INTEGER004 + INTEGER003))) Goto LABEL013
Newlines 3
PrintLn "@X0C■ No news file found!@X07"
Wait
Goto LABEL005
:LABEL013
Cls
PrintLn "@X1F@POFF@DeltaProductions NEWS v1.3A - Viewing news (c) Creep&Delta/DP@X07"
Newline
DispFile PPEPath() + "NEWS." + TSTRING002(STRING008 - INTEGER004 + INTEGER003), 0
AnsiPos 1, 1
PrintLn "@X1F@POFF@DeltaProductions NEWS v1.3A - Viewing news (c) Creep&Delta/DP@X07"
AnsiPos 1, 23
Wait
Goto LABEL005
:LABEL014
GetUser
If (STRING010 > U_Sec) Then
Newline
PrintLn "@X0C■ YOUR ACCESS LEVEL IS TOO LOW TO ADD NEWS!@X07"
Else
Goto LABEL016
Endif
Wait
Goto LABEL005
:LABEL015
GetUser
If (STRING010 > U_Sec) Then
Newline
PrintLn "@X0C■ YOUR ACCESS LEVEL IS TOO LOW TO DELETE NEWS!@X07"
Else
TSTRING002(INTEGER009) = ""
Goto LABEL018
Endif
Wait
Goto LABEL005
:LABEL016
Cls
PrintLn "@X1F@POFF@DeltaProductions NEWS v1.3A - New news header (c) Creep&Delta/DP@X07"
Newline
Print "@X0FH@X0Be@X03ader@X08: @X0B"
InputStr "_", STRING007, 7, 40, Mask_Ascii(), 4096
If (STRING007 == "") Goto LABEL016
Newline
DispFile PPEPath() + "disp2", 0
:LABEL017
STRING012 = Inkey()
If (Upper(STRING012) == "N") Goto LABEL016
If (Upper(STRING012) == "Q") Goto LABEL005
If (Upper(STRING012) == "Y") Goto LABEL026
Goto LABEL017
Goto LABEL026
:LABEL018
If (TSTRING002(STRING008 - INTEGER004 + INTEGER003) < 1) Goto LABEL001
If ("" == "0") Goto LABEL006
AnsiPos 1, 23
Print " "
AnsiPos 1, 23
Print "@X0FD@X0Be@X03lete this news @X0F[@X0BY@X03/@X0BN@X08] @X08: "
InputStr "_", STRING018, 7, 1, "YyNn", 4096
If (Upper(STRING018) == "N") Then
Cls
Goto LABEL001
Endif
If (Upper(STRING018) == "Y") Then
Endif
INTEGER012 = 0
FOpen 1, PPEPath() + "news.idx", 0, 0
:LABEL019
If (Ferr(1)) Goto LABEL020
FGet 1, TSTRING014(INTEGER012)
FGet 1, TSTRING015(INTEGER012)
FGet 1, TSTRING016(INTEGER012)
INTEGER012 = INTEGER012 + 1
Goto LABEL019
:LABEL020
STRING005 = String(TSTRING002(STRING008 - INTEGER004 + INTEGER003))
If (Len(STRING005) == 1) STRING005 = "00" + STRING005
If (Len(STRING005) == 2) STRING005 = "0" + STRING005
FClose 1
FClose 2
Delete PPEPath() + "news.tmp"
FCreate 2, PPEPath() + "news.tmp", 2, 3
FOpen 1, PPEPath() + "news.idx", 0, 0
FGet 1, TSTRING014(INTEGER012)
FPutLn 2, TSTRING014(INTEGER012)
:LABEL021
If (Ferr(1)) Goto LABEL023
INTEGER012 = INTEGER012 + 1
FGet 1, TSTRING014(INTEGER012)
FGet 1, TSTRING015(INTEGER012)
FGet 1, TSTRING016(INTEGER012)
If (TSTRING015(INTEGER012) == STRING005) Goto LABEL022
FPutLn 2, TSTRING014(INTEGER012)
FPutLn 2, TSTRING015(INTEGER012)
FPutLn 2, TSTRING016(INTEGER012)
:LABEL022
Goto LABEL021
:LABEL023
FClose 1
FClose 2
Delete PPEPath() + "news.idx"
FOpen 1, PPEPath() + "news.tmp", 0, 0
FCreate 2, PPEPath() + "news.idx", 2, 0
:LABEL024
If (Ferr(1)) Goto LABEL025
FGet 1, TSTRING014(INTEGER012)
If (!(TSTRING014(INTEGER012) == "")) FPutLn 2, TSTRING014(INTEGER012)
Goto LABEL024
:LABEL025
FClose 1
FClose 2
Delete PPEPath() + "news.tmp"
Delete PPEPath() + "news." + STRING005
Goto LABEL001
:LABEL026
Cls
PrintLn "@X1FDeltaProductions NEWS v1.3A - Enter your news (c) Creep&Delta/DP@X07"
DispFile PPEPath() + "disp1", 0
For INTEGER010 = 1 To 9999
InputStr "_", TSTRING013(INTEGER010), 7, 79, Mask_Ascii() + Mask_AlNum(), 4096 + 64
If (Upper(TSTRING013(INTEGER010)) == "/S") Break
If (Upper(TSTRING013(INTEGER010)) == "/A") Goto LABEL029
Next
Newline
PrintLn "@X0FA@X0Bd@X03ding header to index file@X08...@X07"
FClose 1
FOpen 1, PPEPath() + "news.idx", 0, 0
FGet 1, TSTRING001(INTEGER001)
:LABEL027
If (Ferr(1)) Goto LABEL028
INTEGER001 = INTEGER001 + 1
FGet 1, TSTRING001(INTEGER001)
If (TSTRING001(INTEGER001) == "") Goto LABEL028
FGet 1, INTEGER019
FGet 1, TSTRING003(INTEGER001)
Goto LABEL027
:LABEL028
FClose 1
STRING008 = String(INTEGER019 + 1)
If (Len(STRING008) == 1) STRING008 = "00" + STRING008
If (Len(STRING008) == 2) STRING008 = "0" + STRING008
FAppend 1, PPEPath() + "news.idx", 0, 0
FPutLn 1, STRING007
FPutLn 1, STRING008
FPutLn 1, STRING009
FClose 1
INTEGER010 = INTEGER010 - 1
Newline
PrintLn "@X0FS@X0Ba@X03ving news file@X08...@X07"
FOpen 1, PPEPath() + "news." + STRING008, 2, 0
INTEGER011 = 0
For INTEGER011 = 1 To INTEGER010
FPutLn 1, TSTRING013(INTEGER011)
Next
FClose 1
Goto LABEL001
:LABEL029
Newline
PrintLn "@X0CABORTED!@X07"
Goto LABEL001
:LABEL030
PrintLn "@PON@"
Cls
End
;------------------------------------------------------------------------------
;
; Usage report (before postprocessing)
;
; ■ Statements used :
;
; 1 End
; 7 Cls
; 4 Wait
; 80 Goto
; 87 Let
; 16 Print
; 14 PrintLn
; 58 If
; 4 DispFile
; 3 FCreate
; 8 FOpen
; 1 FAppend
; 12 FClose
; 19 FGet
; 10 FPutLn
; 2 GetUser
; 4 Delete
; 3 InputStr
; 1 Return
; 9 Newline
; 1 Newlines
; 16 AnsiPos
; 3 SPrintLn
;
;
; ■ Functions used :
;
; 100 +
; 28 -
; 37 ==
; 1 <>
; 11 <
; 5 <=
; 6 >
; 10 >=
; 34 !
; 15 &&
; 4 ||
; 6 Len(
; 11 Upper()
; 12 Left()
; 5 Ferr()
; 2 Chr()
; 1 Date()
; 1 U_LDate()
; 2 Year()
; 2 Month()
; 2 Day()
; 2 Inkey()
; 3 String()
; 1 Mask_AlNum()
; 2 Mask_Ascii()
; 22 PPEPath()
; 2 Exist()
;
;------------------------------------------------------------------------------
;
; Analysis flags : No flag
;
;------------------------------------------------------------------------------
;
; Postprocessing report
;
; 4 For/Next
; 0 While/EndWhile
; 20 If/Then or If/Then/Else
; 0 Select Case
;
;------------------------------------------------------------------------------
; AEGiS Corp - Break the routines, code against the machines!
;------------------------------------------------------------------------------